1990-Club80-32 S.46

Megabit-RAMs einfach erfrischt

Helmut Bernhardt

Im letzten Info hat Alexander eine aufwendige Erweiterung der Erweiterung der 7Bit-Refreshadresse des Z80 auf 8Bit beim 256K-Banker und nun 9 Bit für Megabit-RAMs vorgestellt. Einerseits wäre ich ziemlich stolz gewesen, sowas selbt ersonnen zu haben, andererseits bin ich aber viel zu faul, die bisherige aus der c't übernommene Schaltung zu durchblicken und dann noch auf 9 Bit zu erweitern - es geht nämlich auch ohne.

Wie aus Datenblättern und den beiden üppigen Knowledge-Anhäufungen zu DRAMs in den Heften 10 und 11 aus c't 1990 von Johannes Assenbaum zu entnehmen ist, gibt es für alle 1M-Bit-DRAMs die Möglichkeit, das Refreshing durch den /CAS-before-/RAS-Refresh zu erledigen. Bei 256K-Bit- -DRAMs wird das nur bei einigen Herstellern unterstützt - hier sollte man in entsprechenden Schaltungen diese Technik nicht anwenden, weil nicht gesichert ist, ob die darin eingesetzten Chips den Sport mitmachen.

Beim /CAS-before-/RAS-Refresh muß nur ein low aktives /CAS an die RAMs gelegt werden, 'before' ein /RAS kommt. Dann wird im RAM mit einem internen Zähler eine Columnadresse erzeugt und die damit adressierten Speicherzellen werden refreshed. Ein externer Memorycontroller (bei uns z.B. der Z80) braucht sich dann nicht mehr um eine von außen zugeführte Refreshadresse zu kümmern. Damit ist es auch nicht mehr nötig, daß in der Breite der von den RAMs verwendeten Refreshadresse die nierigen Adressen der CPU zusammen beim /RAS durch die Adreßmultiplexr durchgeschaltet sein müssen. Die CPU-Adressen können in wilder Folge an die A- und B-Eingänge der Multiplexer gelegt werden - wie es für das Layout gerade am besten kommt.

Und wie erzeuge ich einen /CAS-before-/RAS-Refresh? Ich leite wie immer ein aus der Adreßdecodierung für die RAM-Bank und Timing (relativ zu /RAS und MUX) zusammengesetztes /CAS her und lege es über ein AND-Gatter mit /RFSH bzw. /RFS beim HD64180 zusammen und verabreiche den RAMs das Produkt dieser geringen Mühe an den /CAS-Eingängen.

Beim Refresh der CPU erscheint das /RFSH-Signal sehr viel früher als das als /RAS verwendete /MERQ. Damit ist die Bedingung der RAMS für den /CAS-before-/RAS-Reresh erfüllt. Bei normalen RAM-Zugriffen wird das herkömmliche /CAS, das zeitlich versetzt nach /RAS und MUX aktiv wird, zu den RAMs durchgeschaltet.

Wer mehr dazu wissen möchte, kann an anderer Stelle in diesem Info eine Anwendung in Form einer 2MB-RAM-Floppy finden, wo diese Refreshart den Schaltungsaufwand wesentlich reduziert hat.